/*
 *      fx.cpp
 *      
 *      2009 Víctor Manuel Ochoa <kanito8a@gmail.com>
 *      
 *      This program is free software; you can redistribute it and/or modify
 *      it under the terms of the GNU General Public License as published by
 *      the Free Software Foundation; either version 2 of the License, or
 *      (at your option) any later version.
 *      
 *      This program is distributed in the hope that it will be useful,
 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
 *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *      GNU General Public License for more details.
 *      
 *      You should have received a copy of the GNU General Public License
 *      along with this program; if not, write to the Free Software
 *      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 *      MA 02110-1301, USA.
 */


#include "fx.h"


/*
 * 
 * name: desconocido
 * @param
 * @return
 */
FX::FX(): Anim()
{
	m_pLog=&Log::getInstance();
}


/*
 * 
 * name: desconocido
 * @param
 * @return
 */
FX::~FX()
{
	
}

/*
 * 
 * name: desconocido
 * @param
 * @return
 */
bool FX::init(Texture * _texture,unsigned short _colums_num,unsigned short _rows_num,std::vector<unsigned short> _animation,unsigned int _frame_time){
	
	if(!Anim::init(_texture,_colums_num,_rows_num)){
		Anim::freeMemory();
		m_pLog->error("Unable to create FX"); 
		return false;	
	}
	
	Anim::setAnim(_animation,_frame_time);
	
	m_alive=true;
	m_pLog->debug("+ FX initialized"); 
	return true;
}

/*
 * 
 * name: desconocido
 * @param
 * @return
 */void FX::freeMemory()
{
	Anim::freeMemory();
	m_pLog->debug("- FX free"); 
	m_pLog=0;	
}

/*
 * 
 * name: desconocido
 * @param
 * @return
 */
void FX::draw(){
	if(!m_alive)return;
	
	Anim::draw();	
}

/*
 * 
 * name: desconocido
 * @param
 * @return
 */
void FX::update(){
	
	if(!m_alive){return;}
	
	Anim::update();	
	
	if(Anim::endOfAnim())
	{
		Entity::setAlive(false);
	}
}
